package networking.main;

import networking.config.parser.*;
import networking.tcp.*;
import networking.udp.UdpClientServer;

public class Main {

	public static void main(String[] args) {
		validateInputParameters(args);
		Config sampleConfig = new Config(args[0]);

//		if (Integer.parseInt(args[1]) == 0) {
//			TcpClientServer.createServerSocket(sampleConfig.getNode(1));
//			TcpClientServer.sendPacket(sampleConfig.getNode(1).getServerSocketPerClient());
//		}
//		if (Integer.parseInt(args[1]) == 1) {
//			TcpClientServer.createClientSocket(sampleConfig.getNode(0), sampleConfig.getNode(1));
//			TcpClientServer.recvPacket(sampleConfig.getNode(0).getClientSocket());
//		}

		if (Integer.parseInt(args[1]) == 0) {
			UdpClientServer.createServerSocket(sampleConfig.getNode(1));
			UdpClientServer.recvPacket(sampleConfig.getNode(1).getUdpServerSocket());
		}
		if (Integer.parseInt(args[1]) == 1) {
			UdpClientServer.createClientSocket(sampleConfig.getNode(0), sampleConfig.getNode(1));
			UdpClientServer.sendPacket(sampleConfig.getNode(1).getIp(), sampleConfig.getNode(1).getPort(), sampleConfig.getNode(0).getUdpClientSocket());
		}

		// sampleConfig.toString();

	}

	private static void validateInputParameters(String[] args) {
		if (args.length != 2) {
			System.out.println("<1. Config File Path>");
			System.out.println("<2. Is this server(1) otherwise (0)>");
			System.exit(-1);
		}
	}
}
